It is known to use accelerators or co-processors in conjunction with a main processor to increase performance, the accelerators or co-processors performing tasks requested by the main processor. Although it is clear that the provision of additional processing power can increase performance a possible drawback of such a system is the overhead associated with the communication between the processor and the accelerator. In situations, for example, where both secure and non-secure data is processed under the control of secure operating systems and non-secure operating systems, the communication overheads associated with managing the security status of the data being transferred between the processor and accelerator can be very high. In such cases it may only be advantageous to send large tasks to the accelerator to be performed, but to not send tasks that take only a few tens or even hundreds of cycles having as much or more communication overhead associated with them as they would have processing performance gained.